<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>MACRO</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="../edit68k.css" rel="stylesheet" type="text/css">
</head>

<body class="text">
<p class="heading">Assembler Commands - Macro<hr noshade></p>
<p>
</p>
<p>A macro is a user declared sequence of instructions. When a 
macro is invoked the code contained in the macro is inserted into the program in 
place of the macro invocation. Unlike a subroutine, a macro does not exist as 
code until it is invoked and then the code is inserted into the program. Each macro 
must be defined by a unique name. Once a macro is defined the code that it 
contains may be inserted into a program by using the macro name in the assembly 
source in the same way an instruction or opcode would be used. The macro 
definition should appear in the code before it is invoked. Calling macros that 
are defined later in the code may result in an error if the macro call is 
between a branching instruction and its destination label. The error message:<br>
&nbsp;&nbsp; ERROR: Address or value of symbol has changed during assembly.<br>
&nbsp;&nbsp; See 'Help' on Macros for possible causes<br>
will be displayed if such an error occurs. Placing the macro definitions at the 
top of the code will prevent macro calls from causing this error.</p>
<p>Macros are defined using the syntax:</p>
<p class="sourcecode">macName MACRO<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>code</i><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ENDM </p>
<p>Up to thirty-six parameters may be used 
in the macro as \0 
through \9 and \A through \Z. The parameters are specified when the macro is 
invoked. The assembler replaces the macro argument \n with the parameter 
specified. Parameter \0 always refers to the .size code letter (B or W or L). 
Use angle brackets to enclose arguments that contain white space &lt;this is one 
argument&gt;. See MACRO.X68 in the examples folder for an example.<p>
Example:<p class="sourcecode">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
opt&nbsp;&nbsp; mex<br>
* Convert the ASCII character in \1 to upper case<br>
toUpper MACRO<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFNC&nbsp; \0,B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
;if .B not specified<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FAIL ERROR, toUpper is .B 
only<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MEXIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
;exit macro<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ENDC<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CMP.B&nbsp;&nbsp;&nbsp;&nbsp; #'a',\1<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BLO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NOT\@&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
;if not lower case<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CMP.B&nbsp;&nbsp;&nbsp;&nbsp; #'z',\1<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BHI&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NOT\@&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
;if not lower case<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SUB.B&nbsp;&nbsp;&nbsp;&nbsp; #$20,\1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;convert to 
upper case<br>
NOT\@<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ENDM<br>
<br>
START&nbsp;&nbsp; ORG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $1000<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOVE.B&nbsp;&nbsp;&nbsp; #'a',D0<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; toUpper.B D0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
;invoke toUpper macro, D0 is parameter \1<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOVE.B&nbsp;&nbsp;&nbsp; #9,D0<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TRAP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
#15&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
;Halt Simulator<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; END START</p>
<p><b><br>
Labels Within Macros</b><br>
<br>
The \@ directive creates a unique label. The \@ directive should be used to 
create labels in macros to avoid having multiple definitions of the same label 
when a macro is invoked more than once. The \@ directive may be used in 
conjunction with other text to create a descriptive label. The assembler will 
replace \@ with a string of the form _n, where n is a unique decimal number.<br>
<br>
References to an assembler-generated label always refer to the label of the 
given form defined in the current level of macro expansion. Such a label is 
referenced as an operand by specifying the same character string as that which 
defines the label.<br>
&nbsp;<p><b>The MEXIT directive</b></p>
<p>The directive MEXIT may be used to exit macro processing. All 
remaining statements in the macro are skipped up to the ENDM directive.<br>
&nbsp;</p>
<p><b>The NARG directive</b></p>
<p>NARG is a special symbol when referenced within a macro 
expansion. The value assigned to NARG is the index of the last argument passed 
to the macro in the parameter list (even if nulls). NARG is a reserved word 
inside a macro but is undefined outside of macro expansion, and may be 
referenced as a user-defined symbol.<br>
<br>
In the following example the NARG directive is used to check for the presence of 
two arguments. If the macro is called with fewer or more than two arguments an 
error is created by using the <a href="fail.htm">FAIL</a> directive and the 
macro is exited with MEXIT:</p><p class="sourcecode">MAC&nbsp;&nbsp;&nbsp;&nbsp; 
MACRO<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFNE NARG-2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
;if not 2 arguments<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FAIL ERROR, MAC requires 
2 arguments<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MEXIT<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ENDC<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOVE.\0&nbsp;&nbsp; \1,D0<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLR.L&nbsp;&nbsp;&nbsp;&nbsp; \2<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ENDM<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OPT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
MEX<br>
START&nbsp;&nbsp; ORG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $1000<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MAC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
#'A'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
;causes error 'ERROR, MAC REQUIRES 2 ARGUMENTS'<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MAC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
#1,D0<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOVE.B&nbsp;&nbsp;&nbsp; #9,D0<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TRAP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
#15&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
;Halt Simulator<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; END&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
START</p>
<p>&nbsp;</p>
<p><b>Null arguments and Conditional Assembly in Macros</b></p>
<p>The <a href="conditional.htm">conditional assembly</a> 
directive
IFxx may be used to test for missing (null) parameters. To assemble 
conditionally if parameter 1 is null, either of the following directives would 
be correct:<p class="sourcecode">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFC 
'','\1'<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; or<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFC '\1',''</p>
<p>To assemble conditionally if a parameter is present would use 
either of the IFNC formats analogous to the above two.<br>
<br>
The condition IFARG may also be used to check for the presence of an argument in a 
macro call. The syntax is:</p><p class="sourcecode">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFARG 
n<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;statements&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ENDC</p>
<p>Where n specifies the argument (0 - 9, A - Z). If the 
specified argument is not present in the macro call the enclosed statements are 
not included in the program.<br>
&nbsp;</p>
<p>It is possible to specify a null argument in a macro call by an empty string 
(not a blank) ' ' or empty angle brackets &lt;&gt;. The following listing is a portion 
of an .L68 file created by EASy68K. Line 7 contains the assembler option
<a href="opt.htm">MEX</a> to expand macros in the listing file. The macro is named
foo and is defined in lines 8 through 14. Line 9 in the macro is using 
the conditional assembly directive IFC to check for the presence of argument 2. 
Lines 17m through 36m are macro calls and the expanded macro statements as 
indicated by the lower case m following the line number. If nested macro 
calls are made multiple m's are displayed. The macro foo is called 
on line 17m with 3 arguments. Line 18m shows the result of comparing argument 2 
with ' ' was FALSE. Since the result of the IFC conditional statement was false 
the NOP instruction on line 10 of the macro was not assembled. On line 23m angle 
brackets &lt;&gt; are used to specify argument 2 is null. Line 24m shows the result of 
the IFC statement is TRUE and line 25m shows the NOP instruction has been 
assembled as a result. The same is true on line 30m where an empty string ' ' is 
used for argument 2.</p><p class="sourcecode">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OPT&nbsp;&nbsp;&nbsp;&nbsp; MEX<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
8&nbsp; foo MACRO <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IFC&nbsp;&nbsp;&nbsp;&nbsp; '\2','' <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nop <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ENDC <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; move&nbsp;&nbsp;&nbsp; #\1,d0 <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; move&nbsp;&nbsp;&nbsp; #\3,d1 <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ENDM <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
15 <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
16&nbsp; START <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
17m&nbsp;&nbsp;&nbsp;&nbsp; foo&nbsp;&nbsp;&nbsp;&nbsp; 1,2,3&nbsp;&nbsp; no 
null argument<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
FALSE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 18m&nbsp;&nbsp;&nbsp;&nbsp; IFC&nbsp;&nbsp;&nbsp;&nbsp; 
'2','' <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
19m&nbsp;&nbsp;&nbsp;&nbsp; ENDC <br>
303C 0001&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
20m&nbsp;&nbsp;&nbsp;&nbsp; MOVE&nbsp;&nbsp;&nbsp; #1,D0 <br>
323C 0003&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
21m&nbsp;&nbsp;&nbsp;&nbsp; MOVE&nbsp;&nbsp;&nbsp; #3,D1 <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
22m&nbsp;&nbsp;&nbsp;&nbsp; ENDM <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
23m&nbsp;&nbsp;&nbsp;&nbsp; foo&nbsp;&nbsp;&nbsp;&nbsp; 4,&lt;&gt;,6&nbsp; argument 2 
is null <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
TRUE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 24m&nbsp;&nbsp;&nbsp;&nbsp; IFC&nbsp;&nbsp;&nbsp;&nbsp; 
'','' <br>
4E71&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
25m&nbsp;&nbsp;&nbsp;&nbsp; NOP <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
26m&nbsp;&nbsp;&nbsp;&nbsp; ENDC <br>
303C 0001&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
27m&nbsp;&nbsp;&nbsp;&nbsp; MOVE&nbsp;&nbsp;&nbsp; #4,D0 <br>
323C 0003&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
28m&nbsp;&nbsp;&nbsp;&nbsp; MOVE&nbsp;&nbsp;&nbsp; #6,D1 <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
29m&nbsp;&nbsp;&nbsp;&nbsp; ENDM <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
30m&nbsp;&nbsp;&nbsp;&nbsp; foo&nbsp;&nbsp;&nbsp;&nbsp; 7,'',9&nbsp; argument 2 
is null<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
TRUE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 31m&nbsp;&nbsp;&nbsp;&nbsp; IFC&nbsp;&nbsp;&nbsp;&nbsp; 
'','' <br>
4E71&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
32m&nbsp;&nbsp;&nbsp;&nbsp; NOP <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
33m&nbsp;&nbsp;&nbsp;&nbsp; ENDC <br>
303C 0001&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
34m&nbsp;&nbsp;&nbsp;&nbsp; MOVE&nbsp;&nbsp;&nbsp; #7,D0 <br>
323C 0003&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
35m&nbsp;&nbsp;&nbsp;&nbsp; MOVE&nbsp;&nbsp;&nbsp; #9,D1 <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
36m&nbsp;&nbsp;&nbsp;&nbsp; ENDM <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
37 <br>
103C 0009&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
38&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOVE.B&nbsp; #9,D0<br>
4E4F&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
39&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TRAP&nbsp;&nbsp;&nbsp; #15&nbsp;&nbsp;&nbsp;&nbsp; 
Halt Simulator<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
40 <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
41&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; END START</p>
<p>Refer to the Examples folder for additional sample code.</p>
</body>
</html>
